#ifndef __CP56TIME2A_H__
#define __CP56TIME2A_H__

#ifdef __cplusplus
extern "C" {
#endif

#pragma pack(push, 1) // 字节对齐

typedef volatile union
{
    struct
    {
        unsigned short msec;    // 秒
        unsigned char min : 6;  // 分
        unsigned char res1 : 1; // 保留
        unsigned char iv : 1;   // 
        unsigned char hour : 5; // 时
        unsigned char res2 : 2; // 保留
        unsigned char su : 1;   // 
        unsigned char mday : 5; // 日
        unsigned char wday : 3; // 星期
        unsigned char month : 4;// 月
        unsigned char res3 : 4; // 保留
        unsigned char year : 7; // 年以2000年为基准
        unsigned char res4 : 1; // 保留
    } Compts;
#ifdef useBuff
#define SIZE sizeof(struct Compts) / sizeof(unsigned char) // 适配结构体尺寸
    unsigned char Time[SIZE]; // 另一个实现,但是不能用指针
#else
    unsigned long long int Time; // 低7字节是七个八位位组二进制时间
#endif
} st_cp56time2a;

#pragma pack(pop)

struct cp56time2a;

struct cp56time2a *get_ops(void);
void set_time(struct cp56time2a *Handle);
void get_time(struct cp56time2a *Handle);

#ifdef __cplusplus
}
#endif

#endif /* __CP56TIME2A_H__ */
